import { defineStore } from 'pinia'
// 按需导入获取用户信息的接口
import { getProfileApi } from '../api'

const useUserStore = defineStore('user', {
  // 全局数据
  state: () => ({
    // 全局存储的 token 值，默认为空字符串
    token: '',
    // 全局存储用户的信息，包含头像、昵称等数据
    user: {}
  }),
  // 方法
  actions: {
    // 此方法用于修改 token 的值
    updateToken(newToken) {
      this.token = newToken
    },
    // 调用这个方法，可以初始化用户的基本信息
    async initUserProfile() {
      // 调用接口，请求用户信息
      const result = await getProfileApi()
      // 把用户信息，保存到全局的 user 上
      this.user = result.data
    }
  },
  // 对当前的 Store 进行数据持久化
  persist: true
})

export default useUserStore
